package com.cs.mapper;

import com.cs.domain.*;
import com.cs.domain.vo.CSBudgetVO;
import com.cs.domain.vo.CSLineItemsVO;
import com.cs.domain.vo.CSProcurementPlanVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author：bbdf
 * @Package：com.cs.domain
 * @Project：RuoYi-Cloud
 * @name：CSProcurementPlanMapper
 * @Date：2024-11-11 10:46
 * @Filename：CSProcurementPlanMapper
 */
public interface CSProcurementPlanMapper {
    List<CSProcurementPlan> getPlanList(CSProcurementPlan plan);

    /**
     * 添加预算
     * @param collect 预算集合
     * * @return
     */
    Integer addBudgetList(@Param("collect") List<CSBudgetVO> collect);

    /**
     * 添加行项目
     * @param collect
     * @return
     */
    Integer addLineItems(@Param("collect") List<CSLineItems> collect);

    /**
     * 添加计划
     * @param plans
     * @return
     */
    Integer addPlan(CSProcurementPlan plans);

    Integer addPubFile(@Param("collect1") List<CSPubAttachments> collect1);

    CSProcurementPlanVO getPlanInfoByACode(String aCode);

    List<CSBudgetVO> getProcurementInfo(String aCode);

    List<CSLineItemsVO> getLineItems(String aCode);

    List<CSProcurementPlanVO> getPlanByState(String aCode);

    Integer editBudget(@Param("csProcurementPlanMapper") List<CSBudgetVO> csProcurementPlanMapper);

    Integer editLineItems(@Param("editLineItems") List<CSLineItemsVO> editLineItems);

    Integer deleteLineItems(@Param("vCodes") List<String> strings);

    Integer deleteBudget(@Param("duCodes") List<String> strings1);

    Integer updatePlan(CSProcurementPlanVO plan);

    Integer deleteFile(String aCode);

    Integer deleteLineItem(@Param("vCode") String vCode);

    Integer changeAstateByACode(@Param("plan") CSProcurementPlanVO plan);

    Integer deleteFileByPlanCode(String planCode);

    Integer updatePlanAstate(@Param("plan") List<CSProcurementPlan> procurementPlan);

    List<CSProcurementPlan> getNotSourcing(CSProcurementPlan plan);

    List<TenderNeedLineItemsVO> getTenderNeedLineItems(String xyId);
    Integer addPubFileByINumber(@Param("collect1") List<CSPubAttachments> pubAttachments);

    Integer deleteFileByINumber(String iNumber);

    Integer updatePlanStateByACode(CSProcurementPlanVO planVO);

    List<CSPubAttachments> getNoticeFile(String uId);

    Integer addNoticeFile(@Param("list") List<CSPubAttachments> csPubAttachments1);

    Double getBudgetTotal(String aCode);

    Integer addTenderFile(@Param("csPub") CSPubAttachments csPubAttachments);


    /**
     * 查询采购计划数量
     * @param state
     * @return
     */
    public int selectCSProcurementPlanCount(CSProcurementPlan state);


    Integer editBudgetForm(@Param("item") CSBudget state);

    Integer deleteBudgetForm(String duId);

    List<CSLineItemsVO> getLineItemsList(String iNumber);
}